home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / Oberon⁄F™ 1.1 / Obx / Mod / Patterns (.txt) < prev    next >
Encoding:
Oberon Document  |  1996-01-05  |  2.7 KB  |  79 lines  |  [oODC/obnF]

  1. Documents.StdDocumentDesc
  2. Documents.DocumentDesc
  3. Containers.ViewDesc
  4. Views.ViewDesc
  5. Stores.StoreDesc
  6. Documents.ModelDesc
  7. Containers.ModelDesc
  8. Models.ModelDesc
  9. Stores.ElemDesc
  10. TextViews.StdViewDesc
  11. TextViews.ViewDesc
  12. TextModels.StdModelDesc
  13. TextModels.ModelDesc
  14. TextModels.AttributesDesc
  15. Helvetica
  16. Helvetica
  17. Helvetica
  18. MODULE ObxPatterns;
  19.     IMPORT Ports, Stores, Views, Properties;
  20.     CONST minVersion = 0; maxVersion = 0;
  21.     TYPE View = POINTER TO RECORD (Views.ViewDesc) END;
  22.     PROCEDURE (v: View) Internalize (VAR rd: Stores.Reader);
  23.         VAR thisVersion: SHORTINT;
  24.     BEGIN
  25.         v.Internalize^(rd);
  26.         IF ~rd.cancelled THEN
  27.             rd.ReadVersion(minVersion, maxVersion, thisVersion)
  28.         END
  29.     END Internalize;
  30.     PROCEDURE (v: View) Externalize (VAR wr: Stores.Writer);
  31.     BEGIN
  32.         v.Externalize^(wr);
  33.         wr.WriteVersion(maxVersion)
  34.     END Externalize;
  35.     PROCEDURE (v: View) Restore (f: Views.Frame; l, t, r, b: LONGINT);
  36.         VAR w, h, d: LONGINT; col: INTEGER; colors: ARRAY 3 OF Ports.Color;
  37.     BEGIN
  38.         colors[0] := Ports.red; colors[1] := Ports.green; colors[2] := Ports.blue;
  39.         v.context.GetSize(w, h);
  40.         d := 4 * f.dot; col := 0;
  41.         l := 0; t := 0; r := w; b := h;
  42.         WHILE (r> l) & (b > t) DO
  43.             f.DrawRect(l, t, r, b, f.dot, colors[col]);
  44.             INC(l, d); INC(t, d); DEC(r, d); DEC(b, d); col := (col + 1) MOD 3
  45.         END
  46.     END Restore;
  47.     PROCEDURE (v: View) HandlePropMsg (VAR p: Properties.Message);
  48.         CONST min = 10 * Ports.mm; max = 160 * Ports.mm; pref = 90 * Ports.mm;
  49.     BEGIN
  50.         WITH p: Properties.SizePref DO    (* prevent illegal sizes *)
  51.             IF p.w = Views.undefined THEN    (* no preference for width -> skip *)
  52.             ELSIF p.w < min THEN p.w := min
  53.             ELSIF p.w > max THEN p.w := max
  54.             END;
  55.             IF p.h = Views.undefined THEN p.h := pref
  56.             ELSIF p.h < min THEN p.h := min
  57.             ELSIF p.h > max THEN p.h := max
  58.             END
  59.         ELSE
  60.         END
  61.     END HandlePropMsg;
  62.     PROCEDURE Deposit*;
  63.         VAR v: View;
  64.     BEGIN
  65.         NEW(v); Views.Deposit(v)
  66.     END Deposit;
  67. END ObxPatterns.
  68. TextControllers.StdCtrlDesc
  69. TextControllers.ControllerDesc
  70. Containers.ControllerDesc
  71. Controllers.ControllerDesc
  72. TextRulers.StdRulerDesc
  73. TextRulers.RulerDesc
  74. TextRulers.StdStyleDesc
  75. TextRulers.StyleDesc
  76. TextRulers.AttributesDesc
  77. Helvetica
  78. Documents.ControllerDesc
  79.